#list(列表CRUD操作)
#Create(增加）
xin = [1, 2, 3]
luo = xin + [1, 2]
print(luo)


xin = [1]*2
print(xin)


#append
xin = [1, 2, 3]
xin.append(4)
print(xin)

#insert
xin = [1, 2, 3]
xin.insert(2, 5)
print(xin)

#Retrieve(检索）
#索引取值
xin = [1, 2, 3, 4]
print(xin[1])

#切片
xin = [1, 2, 3, 4]
print(xin[0: 2])
print(xin[2:])     #切掉start
print(xin[:2])     #切掉end
print(xin[-1])     #取最后一个值
print(xin[0:3:1])  #间隔

#index(索引)
xin = [1, 2, 3, 4, 5, 6, 7]
print(xin.index(3))
print(xin.insert(xin.index(2), 8))#返回空是因为insert原地修改列表，并没有创建新的列表
print(xin)


#Updatez更新
#切片赋值
xin = [1, 2, 3, 4, 5]
xin[2] = 6
print(xin)
xin[0:2] = [5, 6, 7, 8, 9, 2, 3, 4]
print(xin)


#Delete(删除）
#pop
xin = ["x", "c", "v", "b", "n"]
xin.pop()
print(xin)
xin.remove("x")#不返回 删除找到的第一个目标元素
print(xin)


#统计
#count （计算目标元素在当前list中的个数）
xin = ["a", "b", "c", "d", "a", "a"]
print(xin.count("a"))

#排序
#reverse
xin = ["a", "b", "c", "d"]
xin.reverse()#倒序
print(xin)
reversed(xin)#返回新list
print(xin)

#sort(排序)
xin = [1, 5, 6, 7, 3, 2, 4]
xin.sort()#增序排序  原地修改列表，不会创建新的列表，值不变
print(xin)

#sorted
xin = [5, 2, 3, 4, 1]
print(sorted(xin)) #返回新列表


#Tuple（元组）
#检索
#索引取值
xin = (1, 2, 3, 4, 5)
print(xin[0])
#切片
print(xin[2:4])
#index
xin = (5, 6, 7, 8)
print(xin.index(6))


#Dict(字典)
#create（增加）
#键对值赋值
xin = {"5": 3.14}
xin["6"] = 5.67
print(xin)
#update
xin = {"1": 2, "5": 6}
luo = {"a": 3, "c": 4}
xin.update(luo)  #合并在xin中
print(xin)

#setdefault
#如果有值，就pass，没有就设置默认
xin = {"c": 1, "k": 2, "d": 3}
xin.setdefault("f", 8)
print(xin)

#Retrieve（检索）
xin = {"a": 1, "b": 2, "c": 3}
#键
print(xin["a"])
#get
print(xin.get("b", 33))  #有值返回该值
print(xin.get("d", 56))  #没值返回默认
#keys()
print(xin.keys())#返回所有key
#values()
print(xin.values())#返回所以值
#items()
print(xin.items())#返回元组形式的键对值

#Update（更新）
xin = {"x": 1, "z": 4, "c": 5}
#键对值赋值
xin["x"] = 6
print(xin)
#update
xin.update({"n": 8, "x": 1})#修改和新增
print(xin)


#Delete(删除）
xin = {"h": 1, "k": 2, "d": 3}
xin.pop("h")#删除指定key
print(xin)
xin.popitem()#随机删除元素
print(xin)
xin.clear()#清空当前字典
print(xin)


#Set(集合）
#Create（增加）
xin = set()
xin.add(1)
xin.add(2)
xin.add(3)
print(xin)
#Retrieve(检索）
#in 判断当前元素在不在set中
print(1 in xin)


#Update(更新）
#update
xin = {1, 2, 3, 4}
xin.update({1, 6, 7}) #有的代替，没有添加
print(xin)
#union
xin = {"a", "b", "c"}
luo = {1, 2, 3, 4}
print(xin.union(luo))#返回合并集，不改变想x,y


#Delete
#remove和discard
xin = {1, 2, 3, 4}
xin.remove(1)
print(xin)
xin.discard(2)
print(xin)
print(xin.pop())